#ifndef TYPES_H
#define TYPES_H

struct _INPUT_MODE;
typedef struct _INPUT_MODE INPUT_MODE;

struct _AUDIO_MODE;
typedef struct _AUDIO_MODE AUDIO_MODE;

struct _VIDEO_MODE;
typedef struct _VIDEO_MODE VIDEO_MODE;

struct _INPUT;
typedef struct _INPUT INPUT;

struct _AUDIO;
typedef struct _AUDIO AUDIO;

struct _VIDEO;
typedef struct _VIDEO VIDEO;

typedef struct
{
	struct
	{
		int width, height, bpp;
	} info;
	unsigned char *buffer;
} BOX;

typedef struct
{
	BOX *box;
	void *data;
} DEMO;

typedef struct
{
	void *handle;

	void
	(*DEMO_Init)(DEMO *demo, BOX *box);

	void
	(*DEMO_Frame)(DEMO *demo);

	void
	(*DEMO_Final)(DEMO *demo);
} PLUGIN;

#endif
